﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Data;

/// <summary>
/// Summary description for servicio
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class comentario : System.Web.Services.WebService
{

    ComentarioServices ComentariosServices = new ComentarioServices();
    UsuarioServices UsuariosServices = new UsuarioServices();
    BancarServices bancanServices = new BancarServices();

    public comentario()
    {
        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public Comentario ComentarPost(string UsuarioId, string Comentario, string PostId)
    {
        int idUsuario = Convert.ToInt32(UsuarioId);
        int idPost = Convert.ToInt32(PostId);
        Comentario comentario = ComentariosServices.ComentarPost(idUsuario, Comentario, idPost);
        NotificarComentario(idPost, idUsuario);
        return comentario;
    }

    private void NotificarComentario(int idPost, int idUsuario)
    {
        NotificacionServices notificacionServices = new NotificacionServices();
        notificacionServices.InsertarNotificacionComentario(idPost, idUsuario);
    }

    [WebMethod]
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public void BorrarComentario(int comentarioId)
    {
        ComentariosServices.BorrarComentario(comentarioId);
    }

    [WebMethod]
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public ComentarioDTO ComentarPostDTO(string UsuarioId, string Comentario, string PostId)
    {
        int idUsuario = Convert.ToInt32(UsuarioId);
        int idPost = Convert.ToInt32(PostId);
        Comentario comentario = ComentariosServices.ComentarPost(idUsuario, Comentario, idPost);
        NotificarComentario(idPost, idUsuario);
        ComentarioDTO dto = new ComentarioDTO(comentario, UsuariosServices.BuscarUsuario(comentario.IdUsuario));
        dto.PermitirBancar = (!bancanServices.UsuarioBancandoComentario(idUsuario, comentario.Id)).ToString();
        dto.CantidadBancan = bancanServices.CantidadBancanComentario(comentario.Id).ToString();
        return dto;
    }
 
}
